想像你正在操作一個高頻率交易算法。你的投資組合有嚴格的風險限制。一個「硬性」約束就像緊急剎車——一旦觸及限制,系統會立即停止運作,可能導致邏輯崩潰。在凸優化中,我們更傾向於使用「柔軟」的警告系統。我們以平滑的對數「障礙」取代指示函數的鋸齒狀二元峭壁,隨著逐漸接近邊界,對目標函數的懲罰會越來越大。這讓優化器能『感知』約束即將到來,並平滑地調整其軌跡,從不越出可行區域。
不可微分的問題
標準的約束最優化問題定義如下:
$$\text{最小化 } f_0(x) \\ \text{受限於 } f_i(x) \leq 0, \quad i = 1, \ldots, m \\ Ax = b$$
理論上,我們可以用指示函數 $I_-(u)$ 重寫此問題,將約束融入目標函數。然而,$I_-(u)$ 對微積分而言無異於怪物:
$$I_-(u) = \begin{cases} 0 & u \leq 0 \\ \infty & u > 0 \end{cases}$$
由於它在邊界處不連續且具有無限梯度,我們無法計算牛頓法所需的赫絲矩陣 牛頓法。因此,我們需要一個可微的替代函數。
對數平滑
替代函數
我們使用以下函數來近似 $I_-(u)$:
$$\hat{I}_-(u) = -(1/t) \log(-u), \quad \text{定義域 } \hat{I}_- = -\mathbf{R}_{++}$$
其中,$t > 0$ 是決定了近似精度的參數。$t$ 越大,障礙函數就越像真正的指示函數。
內部性約束
與活動集方法不同,此方法要求每個迭代點 $x$ 均保持 嚴格可行 ($f_i(x) < 0$)。由於對數函數在非負值上未定義,它會形成一道『不可穿透』的屏障,使搜尋始終停留在可行集的內部。
🎯 定義:內點法
內點法:通過對一系列等式約束問題應用牛頓法,來求解包含不等式約束的凸最優化問題的方法。